package ${mapper};

import ${entity}.${className};
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;

/**
 * $!codeName Mapper
 *
 * @author ：$!currentUser
 * @date $!date
 */

public interface ${className}Mapper{

	/**
	 * 添加对象
	 * @param model
	 * @return boolean
	 * @date $!date
	 */
	Boolean save(${className} model);

	/**
	 * 修改对象
	 * @param model
	 * @return boolean
	 * @date $!date
	 */
	Boolean update(${className} model);

	/**
	 * 批量添加对象
	 * @param models
	 * @return boolean
	 * @date $!date
	 */
	Boolean batchSave(@Param("models") List<${className}> models);

	/**
	 * 批量修改对象
	 * @param models
	 * @return boolean
	 * @date $!date
	 */
	Boolean batchUpdate(@Param("models") List<${className}> models);

	/**
	 * 根据主键查询
	 * @param pk
	 * @return  ${className}
	 * @date $!date
	 */
	${className} findByPk(${pk.jdbcType} pk);

	/**
	 * 分页查询
	 *
	 * @param map
	 * @return
	 */
	List<${className}> findPage(Map<String, Object> map);

	/**
	 * 根据条件查询记录数
	 *
	 * @param map
	 * @return Integer
	 */
	Integer findPageCount(Map<String, Object> map);

	/**
	 * 根据条件查询
	 *
	 * @param map
	 * @return
	 */
	List<${className}> findByModel(Map<String, Object> map);

	/**
	 * 根据主键批量删除
	 * @param pks
	 * @return int
	 * @date $!date
	 */
	int remove(@Param("pks") List<${pk.jdbcType}> pks);

	/**
	 * 根据主键删除
	 * @param pk
	 * @return int
	 * @date $!date
	 */
	int delete(${pk.jdbcType} pk);

}